package map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.Consumer;

/**
 * map:支持三种遍历方式
 * 1.遍历所有的key
 * 2.遍历所有的value(相对不常用)
 * 3.遍历所有的键值对(key-value)对
 */
public class MapDemo2 {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap<>();
        map.put("语文",99);
        map.put("数学",98);
        map.put("英语",97);
        map.put("物理",96);
        map.put("化学",99);
        System.out.println(map);

        // 遍历所有的key
        Set<String> keySet = map.keySet();
        for (String key : keySet){
            System.out.println("key:"+key);
        }
        // 遍历所有的键值对
        Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
        for (Map.Entry<String,Integer> entry : entrySet){
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println("key:"+key+" value:"+value);
        }
        //遍历所有键值对 用lambda表达式
        map.forEach((s,v)-> System.out.println(s+":"+v));

        //遍历所有值
        Collection<Integer> values = map.values();
        for (Integer value : values){
            System.out.println("value:"+value);
        }
        //遍历所有值 用lambda表达式
        values.forEach(System.out::println);

    }
}
